import {orderPreview, addOrder} from '../../service/order'

Page({

    /**
     * 页面的初始数据
     */
    data: {
        address: null,
        carts: [],
        allPrice: 0,
        showPay: false,
        qr_code_url: '',
        order_id: null,
        timer: null
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        
    },

    onShow () {
        // 检查是否有缓存的选择的地址 id, 有的话, 就是用选择的地址
        const addressId = wx.getStorageSync('select_address_id')

        // 1. 请求订单预览数据, 在onShow请求, 可以保证, 添加完地址, 回到这个页面, 地址能及时刷新
        orderPreview().then(res => {
            // 处理地址
            let address = null
            if (addressId) { // 如果缓存中有地址, 那么匹配缓存中设置的
                // 从现有的地址列表中, 匹配符合id的地址
                address = res.address.filter(item => {
                    return item.id == addressId
                }).pop()
            } else { // 是用默认地址
                // 从现有的地址列表中, 匹配默认地址
                address = res.address.filter(item => item.is_default == 1).pop()
            }

            this.setData({
                carts: res.carts,
                address, // 筛选出来默认的地址
                allPrice: res.carts.reduce((pre, current) => {
                    return pre + current.num * current.goods.price * 100
                }, 0)
            })
        })
    },

    /**
     * 提交订单并支付
     */
    commitOrder() {

        // 准备提交的参数
        const data = {
            address_id: this.data.address.id
        }

        // 请求API, 提交订单
        addOrder(data).then(order => {
            // 存储订单id
            this.setData({
                order_id: order.id
            })

            // 获取子组件对象
            const payDialog = this.selectComponent('#pay-dialog')
            // 调用子组件方法, 弹出支付二维码
            payDialog.getPayQrcode(order.id)
        })

    },
})